using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Boa.AIT.AccesoDatos.Entidades;
using Boa.AIT.Negocios;
using Boa.AIT.Negocios.Servicios;
using Didsoft.Mvc.DataModel;
using Didsoft.Mvc.Controller;
using Didsoft.Mvc.DataModel.Lites;

namespace Boa.AIT.Web.Controllers
{
    public class AIT_EquipoITController : BaseController<AIT_EquipoIT>
    {
	    #region interface servicios AIT_EquipoIT

		private IAIT_EquipoITNegociosServicio servicio = null;

		#endregion
		
		
		#region constructor and overridable

        public AIT_EquipoITController()
        {           
		    servicio = new AIT_EquipoITNegocios();
            base.SetDataModelService(servicio);
            base.DropDownListIdProp = "NombreCompleto";
        }
		        

		#region overrided methods
        public override void PreCreate(dynamic ViewBag)
        {
             ViewBag.AIT_ModeloEquipos=new AIT_ModeloEquipoNegocios().ObtenerTodas();
             ViewBag.AIT_TipoEquipos=new AIT_TipoEquipoNegocios().ObtenerTodas();
             ViewBag.AIT_EquipoCompuestos=new AIT_EquipoCompuestoNegocios().ObtenerTodas();
             ViewBag.AIT_Lotes=new AIT_LoteNegocios().ObtenerTodas();

        }
        public override void PreEdit(dynamic ViewBag)
        {
             ViewBag.AIT_ModeloEquipos=new AIT_ModeloEquipoNegocios().ObtenerTodas();
             ViewBag.AIT_TipoEquipos=new AIT_TipoEquipoNegocios().ObtenerTodas();
             ViewBag.AIT_EquipoCompuestos=new AIT_EquipoCompuestoNegocios().ObtenerTodas();
             ViewBag.AIT_Lotes=new AIT_LoteNegocios().ObtenerTodas();

        }
        #endregion


		#endregion

		#region	actions

		[HttpGet]
		public override ActionResult Index()
        {
            return RedirectToAction("FilterList");
        }

        [HttpPost]
        public JsonResult JSONGetEquiposNoAsignados()
        {
            try
            {
                List<KeyValueLite> datas = new List<KeyValueLite>();
                try
                {
                    datas = servicio.GetEquiposNoAsignados().Select(c => new
                    KeyValueLite
                    {
                        DisplayText = c.NombreCompleto,
                        Value = c.Id.ToString()
                    }).ToList();
                }
                catch
                {
                    datas = GetElementsForDropdownList();
                }


                return Json(new { Result = "OK", Options = datas });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }


        public JsonResult EquiposDeLote(int LoteId)
        {
            try
            {
                List<AIT_EquipoIT> accesos = servicio.ListarEquiposDelLote(LoteId);
                return Json(new { Result = "OK", Records = accesos });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }

        }



		#endregion

    }
}

